package com.aidex.biz.mapper;

import com.aidex.biz.domain.Customer;
import com.aidex.biz.domain.bo.IndexBo;
import com.aidex.biz.domain.vo.OneSelfStatisticVo;
import com.aidex.biz.domain.vo.OneSelfStatisticZongVo;
import com.aidex.biz.domain.vo.OrgTypeStatisticVo;
import com.aidex.common.core.mapper.BaseMapper;
import com.aidex.biz.domain.JinjianBill;

import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * 费用管理Mapper接口
 *
 * @author sean
 * @email 2074844820@qq.com
 * @date 2023-12-17
 */
public interface JinjianBillMapper extends BaseMapper<JinjianBill> {

    /**
     * 批量删除费用管理
     *
     * @param ids 需要删除的费用管理ID集合
     * @return
     */
    public int deleteJinjianBillByIds(String[] ids);

    /**
     * 获取最大编号
     *
     * @param jinjianBill 费用管理
     * @return 结果
     */
    public Integer findMaxSort(JinjianBill jinjianBill);

    public JinjianBill getByJinjianId(JinjianBill jinjianBill);

    /**
     * 资方统计
     *
     * @param jinjianBill
     * @return
     */
    public List<OrgTypeStatisticVo> orgTypeStatistic(JinjianBill jinjianBill);

    /**
     * 资方统计 合计
     *
     * @param jinjianBill
     * @return
     */
    public OrgTypeStatisticVo sumOrgTypeStatistic(JinjianBill jinjianBill);


    /**
     * 个人统计
     *
     * @param jinjianBill
     * @return
     */
    public List<OneSelfStatisticVo> oneSelfStatistic(JinjianBill jinjianBill);

    /**
     * 个人统计 上门部分统计
     *
     * @param jinjianBill
     * @return
     */
    public OneSelfStatisticZongVo oneSelfZongStatistic(JinjianBill jinjianBill);

    /**
     * 首页数据简报
     *
     * @param indexBo
     * @return
     */
    public Map<String, Objects> indexDataShow(IndexBo indexBo);

    /**
     * 首页排行榜 个人
     *
     * @param indexBo
     * @return
     */
    public List<Map<String, Object>> indexPaiHangBangSelf(IndexBo indexBo);

    /**
     * 首页排行榜 部门
     *
     * @param indexBo
     * @return
     */
    public List<Map<String, Object>> indexPaiHangBangDept(IndexBo indexBo);

    /**
     * 首页快捷操作 待完成
     *
     * @param indexBo
     * @return
     */
    public Map<String, Objects> indexDaiCaoZuo(IndexBo indexBo);


    /**
     * 广告进线分析
     *
     * @param customer
     * @return
     */
    public List<Map<String, Objects>> xiansuofenxi(Customer customer);


}
